import React from 'react';
import { Form, Input } from 'antd';
import { axconst } from '@/shared/axconst';
import { AxValidator } from '../AxValidator';

const FormItem = Form.Item;
const { inlineFormItemLayout, inlineFormItemLayoutAllRowTwo, inlineFormItemLayoutAllRowThree } = axconst;
/**
 * 自定义输入框
 * @param label 标签
 * @param field 字段名称
 * @param value 值
 * @param showLabel 是否展示label（默认true）
 * @param placeholder 占位符
 * @param required 是否必填
 * @param message 提示信息（如果添加了，所有错误提示为改信息）
 * @param len 字符长度
 * @param min 字符最小长度
 * @param max 字符最大长度
 * @param pattern 正则表达式
 * @param validator 自定义验证函数
 * @param hidden 是否隐藏
 */
export function InputNumber(props) {
  const { showLabel = true, wholerow, label } = props;
  let formItemLayout = {};
  switch (props.wholerow) {
    case "two":
      formItemLayout = { ...inlineFormItemLayoutAllRowTwo };
      break;
    case "three":
      formItemLayout = { ...inlineFormItemLayoutAllRowThree };
      break;
    default:
      formItemLayout = { ...inlineFormItemLayout };
      break;
  }
  return props.hidden ? null : (
    <FormItem {...formItemLayout} label={showLabel === true ? label : ''}>
      {
        props.form.getFieldDecorator(props.field, {
          initialValue: props.value,
          rules: [
            {
              label: props.label,
              required: props.required,
              message: props.message,
              len: props.len,
              min: props.min,
              max: props.max,
              pattern: props.pattern,
              validator: props.validator ? props.validator : AxValidator,
            },
          ],
        })(<Input placeholder={props.placeholder ? props.placeholder : `请输入${props.label}`} />)
      }
    </FormItem >
  );
}
